#ifndef PILE_CHAINE_ENTREE_H
#define PILE_CHAINE_ENTREE_H

	#include "chaineEntree.h"

	/*pile sous forme de chaine*/
	typedef struct pileChaineEntreeNode {pChaineEntreeNode valeur; struct pileChaineEntreeNode * next;} * pPileChaineEntreeNode;

	pPileChaineEntreeNode pileBloc;//pointe le sommet de la pileEntree du bloc précédent
	pPileChaineEntreeNode pileEntree;

	//initialise les piles à NULL
	void initPiles();
	//renvoie 1 si la pile est null, 0 sinon
	int pileChaineEntreeNodeEstNull (pPileChaineEntreeNode chaine);
	//renvoie le prochain élément de la pile
	pPileChaineEntreeNode nextPileChaineEntreeNode(pPileChaineEntreeNode node);
	//renvoie la valeur du sommet de la pile
	pChaineEntreeNode valeurPileChaineEntreeNode(pPileChaineEntreeNode node);
	//renvoie un nouvel élément de pile
	pPileChaineEntreeNode nouveauPileChaineEntreeNode (pChaineEntreeNode valeur);
	//renvoie la pile après ajout au sommet d un nouvel element contenant la valeur en paramètre
	pPileChaineEntreeNode ajoutPileChaineEntreeNodeDebut(pChaineEntreeNode valeur, pPileChaineEntreeNode chaine);
	//renvoie la pile après suppression de l'element à son sommet
	pPileChaineEntreeNode suppressionPileChaineEntreeDebut (pPileChaineEntreeNode chaine);
	//affiche la pile
	void affichePileChaineEntree (pPileChaineEntreeNode chaine);

#endif
